iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
自我挑戰組

JavaScript學習日誌系列 第 10

學習日誌10-迴圈

  • 分享至 

  • xImage
  •  

建立迴圈

迴圈是用來做一直重複的事。
ex.顯示台灣縣市,一個一個標太多,利用迴圈縮短程式碼達到一樣的效果。

var taiwanCounty = ['台北市','新北市','基隆市']

for (var i = 0;i<taiwanCounty.length;i++ ){
    console.log(area[i]);
}
  • var i = 0建立初始條件,迴圈從0開始跑起。
  • i<taiwanCounty.length判斷條件,迴圈程式碼會一直執行,直到i不在小於taiwanCounty.length(陣列總數)。
  • i++變更條件,表示每執行一次迴圈,i就+1

迴圈與陣列

迴圈是非常適合處理大量資料,並且從中取得資料。
ex.在新北市區運動團體,找到團長是誰:

var sportGroup = [
    {
        groupName: "三蘆新力量",
        leader: "暴龍",
        member: ["One哥","大破茗","川內國輝"],
        memberSportTime: [12,16,22],
        memberNumber: 20,
        playground: "三重體育場"
    },
    {
        groupName: "貓騎單車社",
        leader: "Tony",
        member: ["Lucy","Gary","Tina"],
        memberSportTime: [8,5,6],
        memberNumber: 32,
        playground: "風櫃嘴"
    }
];

function findLeader() {
    for (var i=0;i<sportGroup.length;i++){
        console.log(sportGroup[i].leader);
    }
}

findLeader();

//輸出
暴龍
Tony

迴圈與判斷

使用迴圈,並利用if來判斷那些資料是我們要的。
ex.接上個運動團裡例子,找到超過20名團員的團體:

function findNumber() {
    for (var i=0;i<sportGroup.length;i++){
        if(sportGroup[i].memberNumber>30){
            console.log(sportGroup[i].groupName + "團員超過30位");
        }
    }
}

findNumber();


//輸出
貓騎單車社團員超過30位

迴圈與加總

處理資料有時需要加總,先建立一變數儲存加總後的數字,再利用迴圈計算。
ex.接上個運動團裡例子,加總團體的團員數:

var memberNumberTotal = 0;
function sportNumberTotal() {
    for(var i=0;i<sportGroup.length;i++){
        memberNumberTotal += sportGroup[i].memberNumber;
    }
    console.log("運動人數總共有" + memberNumberTotal + "位");
}

sportNumberTotal();

//輸出
運動人數總共有52位

迴圈與break

執行迴圈可以利用break停止迴圈,就不一定要從頭跑到尾。
ex.接上個運動團裡例子,找到一位叫暴龍的團長:

function findLeaderName(){
    for(var i=0;i<sportGroup.length;i++){
        if(sportGroup[i].leader == "暴龍" ){
            console.log("找到暴龍了,在" + sportGroup[i].groupName);
            break;
        }
    }
}

findLeaderName();

//輸出
找到暴龍了,在三蘆新力量

上一篇
學習日誌09-控制判斷(if、switch)
下一篇
學習日誌11-JSON
系列文
JavaScript學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言